#ifndef TEST_H
#define TEST_H

#include <iostream>

namespace hccl {

    class HcclOpBaseTest {
    public:
        HcclOpBaseTest() {}
        virtual ~HcclOpBaseTest() {}
    };

    class HcclTest {
    public:
        int argc;
        char** argv;
        HcclTest(int _argc, char** _argv) : argc(_argc), argv(_argv) {}
        virtual ~HcclTest() {}
    };

    HcclTest* init_opbase_ptr(HcclTest* opbase);
    void delete_opbase_ptr(HcclTest* opbase);

    class HcclPlfTest : public HcclOpBaseTest {
    public:
        HcclPlfTest(HcclTest* test);
        virtual ~HcclPlfTest();
        virtual int hccl_op_base_test();

    private:
        HcclTest* test;
    };

}

#endif